<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;

class Role extends Base
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {

        $data=\app\admin\model\Role::select();
        return view('role/index',['data'=>$data]);

        //
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create(Request$request)
    {
        if (\request()->isPost()){
            //接受参数
            $data= $request->param();

            //入库
            \app\admin\model\Role::create(['role_name'=>$data['role_name']]);

          return ['msg'=>200];

        }else{


            return view('role/create');

        }

    }

    /**
     * 显示分配权限.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function setauth($id)
    {
        //查询时那个角色
        $data=\app\admin\model\Role::where('id',$id)->find();
        //查询所有的顶级菜单
        $top_auth =\app\admin\model\Auth::where('pid',0)->select();
        //查询所有的二级权限
        $second_auth = \app\admin\model\Auth::where('pid','>','0')->select();

        return view('role/setauth',['data'=>$data,'top_auth' => $top_auth , 'second_auth' => $second_auth]);
    }




// 接受分配得角色

    public function saveauth(){
        //接受角色ID
        $role_id = $this->request->param('role_id');

        //接受参数,数组后面加/a修饰
        $auth_id = $this->request->param('id/a');

        //把权限id转为字符串
        $role_auth_ids = implode(',',$auth_id);


        \app\admin\model\Role::update(['role_auth_ids' => $role_auth_ids],['id' => $role_id]);

        return ['msg'=>200];




    }


    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $data= \app\admin\model\Role::find($id);
        if ($data['role_name'] == '超级管理员'){
            return ['msg' => 203];
        }else{
            \app\admin\model\Role::destroy($id);
            return ['msg' => 201];
        }

        return ['msg' => 202];


    }
}
